<html><!-- #BeginTemplate "/Templates/maintemplate.dwt" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- #BeginEditable "doctitle" --> 
<title>JEP - Java Math Expression Parser</title>
<!-- #EndEditable --> 
<link rel="stylesheet" type="text/css" href="main.css" title="style1">
</head>

<body>



<!-- NAVIGATION ---------------------------------------------------- -->
<div id="navcontainer"> 
  <ul>
    <li><a href="../javadoc/index.html" target="_blank">JavaDoc <img src="img/new-window-icon.gif" width="15" height="11"></a></li>
  </ul>
  <h1>JEP</h1>
  <ul>
    <li><a href="index.html">Basic Usage</a></li>
    <li><a href="variables.html">Variables</a></li>
    <li><a href="types.html">Data types</a></li>
    <li><a href="operators.html">Operators</a></li>
    <li><a href="functions.html">Functions</a></li>
    <li><a href="advanced.html">Advanced Features</a></li>
    <li><a href="grammar.html">Grammar</a></li>
    <li><a href="faq.html">FAQ</a></li>
    <li><a href="version.html">Version History</a></li>
  </ul>
  <h1>Extensions</h1>
  <ul>
    <li><a href="extensions/index.html">Overview</a></li>
    <li><a href="extensions/xjep.html">XJep</a></li>
    <li><a href="extensions/djep.html">Differentiation</a></li>
    <li><a href="extensions/vectorjep.html">Vectors and Matrices</a></li>
    <li><a href="extensions/groupjep.html">Groups</a></li>
    <li><a href="extensions/version.html">Version History</a></li>
  </ul>
</div>



<div id="centercontent">
<!-- CENTER CONTENT -------------------------------------------------- -->
<!-- #BeginEditable "Text" --> 
  <h1><a name="top"></a>Version History</h1>


  <h2 class="version">Version 2.4.1 <span class="date">(released 2007/04/25)</span></h2> 
  <ul>
    <li>added rounding functions round, ceil, and floor</li>
    <li>fixed bug [ 1563324 ] getValueAsObject always returns null after an error</li>
    <li>fixed bug [ 1670974 ] String to double <= comparison message incorrect</li>
    <li>fixed bug [ 1706295 ] Wrong error output when evaluating variables</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->

  <h2 class="version">Version 2.4.0 <span class="date">(released 2006/04/01)</span></h2> 
  <ul>
    <li>Evaluator now switchable to allow null variable values.</li>
  <li>SymbolTable can now tell java.util.observers when new variables are created.</li>
  <li>Changes in Error handling</li>
  <li>New functions binom(n,i) binomial coeffs, conj(z) - complex conjugate</li>
  <li>Added anti aliasing to Function Plotter applet</li>
  <li>Fixed bug 1177557: log(NaN) returns Complex(NaN,NaN) instead of NaN</li>
  <li>Fixed bug 1061200: Null Pointer in Parser when using non Default constructor</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->

  <h2 class="version">Version 2.3.1 <span class="date">(released 2006/01/27)</span></h2>
  <ul>
    <li>Fixed bug 1046349: bug in sum()</li>
    <li>Fixed broken links in documentation</li>
    <li>Fixed bug 1051988: JEPTester falsely reports &quot;No errors&quot;</li>
    <li>Fixed documentation error 1358815: if - function is documented wrong</li>
    <li>Added more tests for sum function</li>
    <li>Updated build.xml to work with 1.5 JVMs</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
  
  <h2 class="version">Version 2.3.0 <span class="date">(released 2004/10/03)</span></h2>
  <ul>
    <li>Switched from Java 1.1 compatibility to 1.2 compatibility</li>
    <li>Documentation updates</li>
    <li>Fixed batch script issues from beta 2</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
  
  <h2 class="version">Version 2.3.0 beta 2 <span class="date">(released 2004/09/03)</span></h2>
  <ul>
    <li>2004/09/11: Renamed angle() function to atan2()</li>
    <li>2004/04/12: New functions if, str, complex, polar.</li>
    <li>2004/04/12: The ^ operator is now overloaded to be the cross product for 
      3D vectors as well as power.</li>
    <li>2004/04/12: Various changes by Richard Morris (see DJEP Version History)</li>
    <li>2003/08/15: Added new evaluation method that more than doubles evaluation 
      performance</li>
    <li>2003/08/15: Renamed addComplexVariable() and addVariableAsObject() to 
      addVariable(). Now all three methods for adding different types of variables 
      are named the same.</li>
    <li>2003/08/10: Improved error handling and reporting in EvaluatorVisitor.</li>
  </ul>
  <p>Known Issues:</p>
  <ul>
    <li>Windows batch scripts for starting the examples are broken. This is due 
      to switching from the MS JVM to the Sun appletviewer. Planned to be fixed 
      for the 2.3.0 release.</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 2.24 <span class="date">(released 2002/12/31)</span></h2>
  <ul>
    <li>2002/12/25: Fixed &quot;not replacing escape sequences in strings&quot; 
      bug</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 2.23 <span class="date">(released 2002/08/03)</span></h2>
  <ul>
    <li>2002/07/01: Started adding Number support to JEP class and functions</li>
    <li>2002/07/08: Fixed string concatenation bug</li>
    <li>2002/07/10: Added NumberFactory class and DoubleNumberFactory (with option 
      for custom NumberFactory in JEP constructor)</li>
    <li>2002/08/02: Added website documents to distribution</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem --><h2 class="version">Version 2.22 <span class="date">(released 2002/07/04)</span></h2>
  <ul>
    <li>2002/06/06: Removed symbol table information from ASTVarNode (making AST 
      nodes into pure data structure elements)</li>
    <li>2002/06/20: Fixed sum() issue (functions with variable number of parameters)</li>
    <li>2002/06/24: Rearranged function class structure by letting PostfixMathCommand 
      implement PostfixMathCommandI (no changes to functionality)</li>
    <li>2002/06/25: Added multiple thread testing classes</li>
    <li>2002/06/26: Made EvaluatorVisitor non-singleton (was doing more harm than 
      good)</li>
    <li>2002/06/28: Added Unicode character support for variable names</li>
  </ul>
  <p> 
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 
  2.21 <span class="date">(released 2002/06/04)</span></h2>

  <ul>
    <li>2002/06/03: Fixed 1.1 compatibility issue in JEP.java (was using add() 
      and clear() which are not included in the 1.1.8 VM).</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 
  2.20 <span class="date">(released 2002/05/31)</span></h2>
  <p></p>
  <ul>
    <li>2002/01/20: Combined multiplication and division to the same precedence 
      level</li>
    <li>2002/03/10: Added implicit multiplication, allowing expressions like &quot;3x 
      == 3*x&quot;</li>
    <li>2002/03/14: Improved evaluation performance through creating only one 
      stack for evaluation</li>
    <li>2002/03/19: Changes to operator precedence (more like C and Java)</li>
    <li>2002/03/19: Now using JavaCC 2.1</li>
    <li>2002/03/24: Added a console application to the org.nfunk.jepexamples package</li>
    <li>2002/03/28: Implemented evaluation using the Visitor design pattern</li>
    <li>2002/04/13: Added setAllowUndeclared() and setImplicitMul() for control 
      of undeclared variables, and implicit multiplication options</li>
    <li>2002/04/15: Added getSymbolTable() for obtaining list of variables in 
      the symbol table (e.g. after parsing an expression with allowUndeclared=true)</li>
    <li>2002/04/17: Prepared directory structure for building with <a href="http://jakarta.apache.org/ant/">ant</a></li>
    <li>2002/04/19: Full transition of build environment to <a href="http://jakarta.apache.org/ant/">ant</a></li>
    <li>2002/04/20: Finally was persuaded to add the sqrt() function to the set 
      of built-ins</li>
    <li>2002/04/27: Cleaned up error reporting using an error list in the JEP 
      class</li>
    <li>2002/05/27: New documentation</li>
    <li>2002/05/30: Modifications to the sample applets</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 
  2.12 <span class="date">(released 2002/02/01)</span></h2>
  <ul>
    <li>2001/08/31: Made a change to the Complex power function Complex.pow(to 
      avoid problems with applets run in Internet Explorer (Math.exp(-Infinity) 
      was not producing 0.0)</li>
    <li>2001/09/10: Started working on array type</li>
    <li>2001/09/20: Allowed variable number of arguments in functions</li>
    <li>2001/09/20: Fixed undetected syntax error bug involving a comma before 
      a list of function parameters</li>
    <li>2001/10/17: Changed order of precedence for power and unary signs. Now 
      power is of higher order than unary plus or minus</li>
    <li>2001/11/10: Tweaked complex power functions</li>
    <li>2001/11/10: Added error reporting for exceptions that occur while evaluating</li>
    <li>2001/11/17: Edited the parser class to work without static function and 
      symbol tables</li>
    <li>2001/12/21: Completed the JEPTester class for verifying correct evaluation</li>
    <li>2002/01/06: Replaced some Vector operations that relied on AbstractList 
      with Java 1.1 compliant code</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 2.11</h2>
  <ul>
    <li>2001/08/26: Substituted the Netlib complex number class with a custom 
      class</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 2.10</h2>
  <ul>
    <li>2001/07/07: Finished adding complex numbers, and incorporated complex 
      numbers in nearly all built in functions</li>
    <li>2001/07/08: Added string handling with concatenation with the + operator 
      and comparison with ==</li>
    <li>2001/07/16: Renamed the package to org.nfunk.jep</li>
    <li>2001/08/24: Bugfix - subtraction of complex numbers was not working properly</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 2.05</h2>
  <ul>
    <li>2001/03/21: Fixed PostfixMathCommand class to allow inheritance to classes 
      in other packages</li>
    <li>2001/04/10: Added some error reporting functions to main interface class 
      (Error name and position)</li>
    <li>2001/06/01: Finished adding hyperbolic trigonometric functions and packaging.</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 2.04</h2>
  <ul>
    <li>2001/03/01: Fixed EOF problem (included EOF in grammar)</li>
    <li>2001/03/16: Removed a few redundant exception classes</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 2.03</h2>
  <ul>
    <li>2001/02/17: Corrected order of precedence for logical operators</li>
    <li>2001/02/17: Added '&amp;&amp;', '||', and '!' operators to extend the 
      logical functionality of the parser</li>
    <li>2001/02/07: Disabled the default command line output. For debugging purposes, 
      you may want to try to use setTraverse(true)</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 2.0</h2>
  <ul>
    <li>2000/10/16: Started rebuilding the whole parser with JavaCC (<a href="http://www.webgain.com/products/java_cc/">http://www.webgain.com/products/java_cc/</a>)</li>
    <li>2000/10/27: Completed restructuring main background parser functions in 
      JavaCC</li>
    <li>2000/11/17: Created a simple interface class for intuitive interaction 
    </li>
    <li>2000/12/10: Added a few logical operators</li>
    <li>2001/01/06: Released the freshly rebuilt parser</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 1.1</h2>
  <ul>
    <li>2000/11/30: Changed order of precedence so division occurs before multiplication 
    </li>
    <li>2000/10/01: Added exponential notation (i.e. 1.23e-3)</li>
    <li>2000/10/16: Tweaked code here and there</li>
    <li>2000/10/21: Finished new sample applet</li>
    <li>2000/10/21: Repackaged and reorganized all source code and classes</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 1.0</h2>
  <ul>
    <li>2000/07/03: Added more documentation</li>
    <li>2000/07/10: Removed all operator nodes such as MulNode or PlusNode, and 
      replaced them by using FunNode nodes with PostfixMathCommands</li>
    <li>2000/08/07: Considering using JavaCC to recreate the Parser</li>
    <li>2000/09/01: Fixed multiple subtraction problem. Now 1-2-3 = (1-2)-3 instead 
      of 1-(2-3)</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 0.3</h2>
  <ul>
    <li>2000/06/01: Created Web page and posted it</li>
    <li>2000/06/02: Edited Web page, added one variable field just for integers</li>
    <li>2000/06/06: Started adding internal code documentation</li>
    <li>2000/06/09: Figured out how to create objects at run-time with the reflection 
      package. Probably useful for future use of user defined functions</li>
    <li>2000/06/10: Finished adding capability of parsing standard functions as 
      well as user defined functions (thanks to Ross Bagely)</li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->
<h2 class="version">Version 0.2</h2>
  <ul>
    <li>2000/06/18: Added SharedConstants class for the parser package</li>
    <li>2000/06/18: Added InvalidExpressionException class which is thrown inside 
      Parser</li>
    <li>2000/06/19: Tweaked the error report of Parser</li>
    <li>2000/06/27: Simplified process of adding user defined functions by adding 
      a parent class PostfixMathCommand, that contains a function for checking 
      the stack passed to the command</li>
    <li>2000/06/27: Extended the FunNode class to be able to handle functions 
      with multiple arguments, needs to be implemented in the parser yet</li>
    <li>2000/07/01: Completed expanding parser to handle functions with multiple 
      arguments. Implemented angle function to return the angle whose tangent 
      is equal to the ratio of the arguments x/y (using the Math.atan2 method). 
    </li>
  </ul>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem -->

  <!-- #EndEditable -->




<!-- FOOTER ---------------------------------------------------------- -->
<div id="footer">
<a href="http://sourceforge.net/tracker/?func=add&group_id=24711&atid=382402">Report bugs / documentation errors</a><br/>
<br/>
&copy; 2006 <a href="http://www.singularsys.com" target="_blank">Singular Systems</a>
</div>
</div> <!-- centercontent -->

</body>
<!-- #EndTemplate --></html>
